package com.jrx.anytxn.transaction.handler;

import com.jrx.anytxn.common.exception.TxnBizException;
import com.jrx.anytxn.common.exception.TxnException;
import com.jrx.anytxn.transaction.dto.loan.MatchingAmortMethodReq;
import com.jrx.anytxn.transaction.dto.loan.MatchingAmortMethodRes;
import com.jrx.anytxn.transaction.dto.loanRelationInfo.*;

import java.util.List;

/**
 * 贷款相关信息handler
 *
 * @author : zhenghaopu
 * 2019/11/21
 */
public interface ILoanRelationInfoHandler {

    /**
     * 贷款要素查询
     *
     * @param loanElementQueryReq 贷款要素查询请求
     * @return 贷款要素
     */
    LoanElementQueryRes queryLoanElement(LoanElementQueryReq loanElementQueryReq) throws Exception;

    /**
     * 贷款利率查询
     *
     * @param loanRateQueryReq 贷款利率查询请求
     * @return 贷款利率查
     */
    LoanRateQueryRes queryLoanRate(LoanRateQueryReq loanRateQueryReq) throws TxnException;

    /**
     * 还款方式匹配
     * @param matchingAmortMethodReq
     * @return
     */
    MatchingAmortMethodRes matchingAmortMethodHandle(MatchingAmortMethodReq matchingAmortMethodReq) throws Exception;

}
